# ifndef _FIGURA_H_

# define _FIGURA_H_

# include <list>

# include <cmath>

# include "punto.h"

class Figura
{
	public:
	
		Figura()
		{
			r = g = b = 0;
		}
		
		Figura (const Figura& f)
		{
			r = f.r;
			
			g = f.g;
			
			b = f.b;
		}
		
		~Figura () 
		{
		};
		
		virtual Punto supIzq() = 0;
		
		virtual Punto infDer() = 0;
		
		virtual string Texto(int = 0) = 0;
		
		virtual void redimensionar(float, float) = 0;
		
		virtual bool seleccionar(float, float) = 0;
		
		virtual bool contenida (Punto, Punto) = 0;
		
		virtual void trasladar(float, float) = 0;
		
		virtual Figura* clonar () = 0;
		
		virtual list<Figura*> pintar() = 0;
		
		virtual int getCR () 
		{
			return r;
		};
		
		virtual void setCR (int nR) 
		{
			r = nR;
		};
		
		virtual int getCB () 
		{
			return b;
		};
		
		virtual void setCB (int nB) 
		{
			b = nB;
		};
		
		virtual int getCG () 
		{
			return g;
		};
		
		virtual void setCG (int nG) 
		{
			g = nG;
		};

	private:
		
		int r, g, b;
};

# endif
